package POJO;

import java.util.HashSet;
import java.util.Set;
/**
 * 
 * Klasa odpowiadajaca za Kredyt
 *
 */

public class Kredyt extends Konto{
	private double oprocentowanieKredytu;
	private int iloscRat;
	private double wysokoscRaty;
	private Set<HistoriaKredyt> historiaKredyt = new HashSet<HistoriaKredyt>();


	public Kredyt()
	{
		super();
	}
	
	public Kredyt(String nrRachunku ,double wysokoscKredytu,int iloscMies, double oprocen,
			double wysRaty,Osoba pobierajacyKredyt)
	{
		super(nrRachunku,wysokoscKredytu,pobierajacyKredyt);
		this.iloscRat = iloscMies;
		this.oprocentowanieKredytu = oprocen;
		this.wysokoscRaty = wysRaty;
	}
	public Set<HistoriaKredyt> getHistoriaKredyt() {
		return historiaKredyt;
	}

	public void setHistoriaKredyt(Set<HistoriaKredyt> historiaKredyt) {
		this.historiaKredyt = historiaKredyt;
	}
	public double getOprocentowanieKredytu() {
		return oprocentowanieKredytu;
	}
	public void setOprocentowanieKredytu(double oprocentowanieKredytu) {
		this.oprocentowanieKredytu = oprocentowanieKredytu;
	}
	public int getIloscRat() {
		return iloscRat;
	}
	public void setIloscRat(int iloscRat) {
		this.iloscRat = iloscRat;
	}
	public double getWysokoscRaty() {
		return wysokoscRaty;
	}
	public void setWysokoscRaty(double wysokoscRaty) {
		this.wysokoscRaty = wysokoscRaty;
	}
	
	public void dodajRekordHistori(HistoriaKredyt rekord){
		this.historiaKredyt.add(rekord);
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = super.hashCode();
		result = prime * result + iloscRat;
		long temp;
		temp = Double.doubleToLongBits(oprocentowanieKredytu);
		result = prime * result + (int) (temp ^ (temp >>> 32));
		temp = Double.doubleToLongBits(wysokoscRaty);
		result = prime * result + (int) (temp ^ (temp >>> 32));
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (!super.equals(obj))
			return false;
		if (getClass() != obj.getClass())
			return false;
		Kredyt other = (Kredyt) obj;
		if (iloscRat != other.iloscRat)
			return false;
		if (Double.doubleToLongBits(oprocentowanieKredytu) != Double
				.doubleToLongBits(other.oprocentowanieKredytu))
			return false;
		if (Double.doubleToLongBits(wysokoscRaty) != Double
				.doubleToLongBits(other.wysokoscRaty))
			return false;
		return true;
	}
	
	
	


}

